package com.gla.giliair.service;

import com.gla.giliair.entity.CabinInfo;
import com.gla.giliair.entity.Customer;
import com.gla.giliair.entity.Flight;
import com.gla.giliair.entity.FlightExample;
import com.gla.giliair.web.vo.FlightVO;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @Description:
 * @Author: Yingtian qian
 * @Date: 2021/8/24 11:03
 */
public interface FlightService {

    Flight selectFlightById(Long flightId);

    List<Flight> selectFlightsByLeaveAndTime(String leavePoint, Date beginIn, Date endIn, FlightExample orderBy);

    List<Flight> selectFlightsByLeaveAndArriveAndTime(String leavePoint, String arrivePoint, Date beginIn, Date endIn, FlightExample orderBy);

    List<Flight> selectAllFlights(FlightExample orderBy, boolean showDeleted);

    List<Flight> selectFlightsByParams(FlightExample orderBy, boolean showDeleted, FlightVO searchParams);

    Map<String, Object> findSpecialFlightsByLeaveAndTime(String leavePoint, Date beginIn, Date endIn, String sort, boolean isASC, Integer page, Integer pageSize);

    Map<String, Object> findFlightsInADayByLeaveAndArriveAndTime(String leavePoint, String arrivePoint, Date beginIn, String sort, boolean isASC, Integer page, Integer pageSize);

    Map<String, Object> findAllFlights(String sort, boolean isASC, boolean showDeleted, Integer page, Integer pageSize);

    Map<String, Object> addFlight(Flight flight, CabinInfo cabinInfo);

    Map<String, Object> modifyFlight(Flight flight, CabinInfo cabinInfo);

    Map<String, Object> deleteFlight(Long flightId, boolean isSeatDeleted);

    Map<String, Object> searchFlights(String sort, boolean isASC, boolean showDeleted, Integer page, Integer pageSize, FlightVO searchParams);
}
